var mongoose=require('mongoose');
var Post = mongoose.model('Post');
var User = mongoose.model('User');
var async = require('async');

//转载
module.exports=function reprint(req,res,next){

    async.parallel({
            post:function(cb){
                Post.getById(req.params.post_id,function (err,post) {
                    if(err)return cb(err);
                    cb(null,post);
                });
            },
            user:function (cb) {
                User.getByName(req.params.username, function (err, user) {
                    if(err)return cb(err);
                    cb(null,user);
                });
            }
        }, function (err, result) {
            //console.log(err);
            //console.log('reprint async:',result);
            if(err){
                res.reprintResult={
                  error:err
                };
                return next();
            }
            if(!result.user || !result.post){
                res.reprintResult={
                    error:{
                        message:'用户或博客不存在-ErrB'
                    }
                };
                return next();
            }
            if(result.user.name == result.post.user.name){
                res.reprintResult={
                    error:{
                        message:'不能转载自己的博客-ErrC'
                    }
                };
                return next();
            }

            var post=result.post,user=new User(result.user);
            //生成Post实例，以使用save实例方法
            var rePost=new Post({
                title:post.title,
                desc:post.desc,
                content:post.content,
                user:{
                    _id:user._id.toString(),
                    name:user.name,
                    face:user.face,
                    email:user.email
                },
                date:new Date(),
                tags:post.tags,
                reprint:post.reprint
            });

            //添加部分后期需要使用的数据
            rePost.origin_id=post._id;
            rePost.origin_user=post.user;
            //console.log('rePost:',rePost);
            //调用Post静态方法，传入Post实例，实现转载
            Post.reprint(rePost,user,function (err,reprint) {
                res.reprintResult={
                    error:err,
                    reprint:reprint
                };
                //console.log('reprint result:',res.reprintResult);
                next();
            });
        }
    );
};